﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Shared.xaml" />
  </ResourceDictionary.MergedDictionaries>

  <!--<SnippetSlider>-->
  <Style x:Key="SliderButtonStyle"
         TargetType="{x:Type RepeatButton}">
    <Setter Property="SnapsToDevicePixels"
            Value="true" />
    <Setter Property="OverridesDefaultStyle"
            Value="true" />
    <Setter Property="IsTabStop"
            Value="false" />
    <Setter Property="Focusable"
            Value="false" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type RepeatButton}">
          <Border Background="Transparent" />
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <!--<SnippetThumb>-->
  <Style x:Key="SliderThumbStyle"
         TargetType="{x:Type Thumb}">
    <Setter Property="SnapsToDevicePixels"
            Value="true" />
    <Setter Property="OverridesDefaultStyle"
            Value="true" />
    <Setter Property="Height"
            Value="18" />
    <Setter Property="Width"
            Value="8" />
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Thumb}">
          <Rectangle x:Name="Ellipse" 
                   StrokeThickness="1">
                        <Rectangle.Stroke>
              <LinearGradientBrush StartPoint="0,0"
                                   EndPoint="0,1">
                <LinearGradientBrush.GradientStops>
                  <GradientStopCollection>
                    <GradientStop Color="{StaticResource BorderLightColor}"
                                  Offset="0.0" />
                    <GradientStop Color="{StaticResource BorderDarkColor}"
                                  Offset="1.0" />
                  </GradientStopCollection>
                </LinearGradientBrush.GradientStops>
              </LinearGradientBrush>
                        </Rectangle.Stroke>
                        <Rectangle.Fill>
              <LinearGradientBrush EndPoint="0.5,1"
                                   StartPoint="0.5,0">
                <GradientStop Color="{StaticResource ControlMediumColor}"
                              Offset="1" />
                <GradientStop Color="{StaticResource ControlLightColor}" />
              </LinearGradientBrush>
                        </Rectangle.Fill>
            <VisualStateManager.VisualStateGroups>
              <VisualStateGroup x:Name="CommonStates">
                <VisualState x:Name="Normal" />
                <VisualState x:Name="MouseOver">
                  <Storyboard>
                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
                      (GradientBrush.GradientStops)[0].(GradientStop.Color)"
                                                  Storyboard.TargetName="Ellipse">
                      <EasingColorKeyFrame KeyTime="0"
                                           Value="{StaticResource ControlMouseOverColor}" />
                    </ColorAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
                <VisualState x:Name="Pressed">
                  <Storyboard>
                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
                      (GradientBrush.GradientStops)[0].(GradientStop.Color)"
                                                  Storyboard.TargetName="Ellipse">
                      <EasingColorKeyFrame KeyTime="0"
                                           Value="{StaticResource ControlPressedColor}" />
                    </ColorAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
                <VisualState x:Name="Disabled">
                  <Storyboard>
                    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).
                      (GradientBrush.GradientStops)[0].(GradientStop.Color)"
                                                  Storyboard.TargetName="Ellipse">
                      <EasingColorKeyFrame KeyTime="0"
                                           Value="{StaticResource DisabledControlDarkColor}" />
                    </ColorAnimationUsingKeyFrames>
                  </Storyboard>
                </VisualState>
              </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
                    </Rectangle>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
  <!--</SnippetThumb>-->

  <!--Template when the orientation of the Slider is Horizontal.-->
  <ControlTemplate x:Key="HorizontalSlider"
                   TargetType="{x:Type Slider}">
    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto"
                       MinHeight="{TemplateBinding MinHeight}" />
        <RowDefinition Height="Auto" />
      </Grid.RowDefinitions>
      <TickBar x:Name="TopTick"
               SnapsToDevicePixels="True"
               Placement="Top"
               Height="15"
               Visibility="Collapsed">
        <TickBar.Fill>
          <SolidColorBrush Color="{StaticResource GlyphColor}" />
        </TickBar.Fill>
      </TickBar>
      <Border x:Name="TrackBackground"
              Margin="0"
              CornerRadius="5"
              Height="10"
              Grid.Row="1"
              BorderThickness="1">
        <Border.BorderBrush>
          <LinearGradientBrush StartPoint="0,0"
                               EndPoint="0,1">
            <LinearGradientBrush.GradientStops>
              <GradientStopCollection>
                <GradientStop Color="{StaticResource BorderLightColor}"
                              Offset="0.0" />
                <GradientStop Color="{StaticResource BorderDarkColor}"
                              Offset="1.0" />
              </GradientStopCollection>
            </LinearGradientBrush.GradientStops>
          </LinearGradientBrush>
        </Border.BorderBrush>
        <Border.Background>
          <LinearGradientBrush StartPoint="0,0"
                               EndPoint="0,1">
            <LinearGradientBrush.GradientStops>
              <GradientStopCollection>
                <GradientStop Color="{StaticResource ControlLightColor}"
                              Offset="0.0" />
                <GradientStop Color="{StaticResource SliderTrackDarkColor}"
                              Offset="1.0" />
              </GradientStopCollection>
            </LinearGradientBrush.GradientStops>
          </LinearGradientBrush>
        </Border.Background>
      </Border>
      <Track Grid.Row="1"
             x:Name="PART_Track">
        <Track.DecreaseRepeatButton>
          <RepeatButton Style="{StaticResource SliderButtonStyle}"
                        Command="Slider.DecreaseLarge" />
        </Track.DecreaseRepeatButton>
        <Track.Thumb>
          <Thumb Style="{StaticResource SliderThumbStyle}" />
        </Track.Thumb>
        <Track.IncreaseRepeatButton>
          <RepeatButton Style="{StaticResource SliderButtonStyle}"
                        Command="Slider.IncreaseLarge" />
        </Track.IncreaseRepeatButton>
      </Track>
      <TickBar x:Name="BottomTick"
               SnapsToDevicePixels="True"
               Grid.Row="2"
               Fill="{TemplateBinding Foreground}"
               Placement="Bottom"
               Height="15"
               Visibility="Collapsed" />
    </Grid>
    <ControlTemplate.Triggers>
      <Trigger Property="TickPlacement"
               Value="TopLeft">
        <Setter TargetName="TopTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
      <Trigger Property="TickPlacement"
               Value="BottomRight">
        <Setter TargetName="BottomTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
      <Trigger Property="TickPlacement"
               Value="Both">
        <Setter TargetName="TopTick"
                Property="Visibility"
                Value="Visible" />
        <Setter TargetName="BottomTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
    </ControlTemplate.Triggers>
  </ControlTemplate>

  <!--Template when the orientation of the Slider is Vertical.-->
  <ControlTemplate x:Key="VerticalSlider"
                   TargetType="{x:Type Slider}">
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto"
                          MinWidth="{TemplateBinding MinWidth}" />
        <ColumnDefinition Width="Auto" />
      </Grid.ColumnDefinitions>
      <TickBar x:Name="TopTick"
               SnapsToDevicePixels="True"
               Placement="Left"
               Width="4"
               Visibility="Collapsed">
        <TickBar.Fill>
          <SolidColorBrush Color="{StaticResource GlyphColor}" />
        </TickBar.Fill>
      </TickBar>

      <Border x:Name="TrackBackground"
              Margin="0"
              CornerRadius="2"
              Width="4"
              Grid.Column="1"
              BorderThickness="1">
        <Border.BorderBrush>
          <LinearGradientBrush StartPoint="0,0"
                               EndPoint="1,0">
            <LinearGradientBrush.GradientStops>
              <GradientStopCollection>
                <GradientStop Color="{StaticResource BorderLightColor}"
                              Offset="0.0" />
                <GradientStop Color="{StaticResource BorderDarkColor}"
                              Offset="1.0" />
              </GradientStopCollection>
            </LinearGradientBrush.GradientStops>
          </LinearGradientBrush>

        </Border.BorderBrush>
        <Border.Background>
          <LinearGradientBrush EndPoint="1,0"
                               StartPoint="0.25,0">
            <GradientStop Color="{StaticResource ControlLightColor}"
                          Offset="0" />
            <GradientStop Color="{StaticResource SliderTrackDarkColor}"
                          Offset="1" />
          </LinearGradientBrush>
        </Border.Background>
      </Border>
      <Track Grid.Column="1"
             x:Name="PART_Track">
        <Track.DecreaseRepeatButton>
          <RepeatButton Style="{StaticResource SliderButtonStyle}"
                        Command="Slider.DecreaseLarge" />
        </Track.DecreaseRepeatButton>
        <Track.Thumb>
          <Thumb Style="{StaticResource SliderThumbStyle}" />
        </Track.Thumb>
        <Track.IncreaseRepeatButton>
          <RepeatButton Style="{StaticResource SliderButtonStyle}"
                        Command="Slider.IncreaseLarge" />
        </Track.IncreaseRepeatButton>
      </Track>
      <TickBar x:Name="BottomTick"
               SnapsToDevicePixels="True"
               Grid.Column="2"
               Fill="{TemplateBinding Foreground}"
               Placement="Right"
               Width="4"
               Visibility="Collapsed" />
    </Grid>
    <ControlTemplate.Triggers>
      <Trigger Property="TickPlacement"
               Value="TopLeft">
        <Setter TargetName="TopTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
      <Trigger Property="TickPlacement"
               Value="BottomRight">
        <Setter TargetName="BottomTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
      <Trigger Property="TickPlacement"
               Value="Both">
        <Setter TargetName="TopTick"
                Property="Visibility"
                Value="Visible" />
        <Setter TargetName="BottomTick"
                Property="Visibility"
                Value="Visible" />
      </Trigger>
    </ControlTemplate.Triggers>
  </ControlTemplate>

  <Style TargetType="{x:Type Slider}">
    <Setter Property="SnapsToDevicePixels"
            Value="true" />
    <Setter Property="OverridesDefaultStyle"
            Value="true" />
    <Style.Triggers>
      <Trigger Property="Orientation"
               Value="Horizontal">
        <Setter Property="MinWidth"
                Value="50" />
        <Setter Property="MinHeight"
                Value="21" />
        <Setter Property="Template"
                Value="{StaticResource HorizontalSlider}" />
      </Trigger>
      <Trigger Property="Orientation"
               Value="Vertical">
        <Setter Property="MinWidth"
                Value="21" />
        <Setter Property="MinHeight"
                Value="104" />
        <Setter Property="Template"
                Value="{StaticResource VerticalSlider}" />
      </Trigger>
    </Style.Triggers>
  </Style>
  <!--</SnippetSlider>-->
</ResourceDictionary>